# Maintainer: Felix Yan <felixonmars@archlinux.org>

pkgname=python-pre-commit
pkgver=2.20.0
pkgrel=3
pkgdesc="A framework for managing and maintaining multi-language pre-commit hooks"
url="https://github.com/pre-commit/pre-commit"
license=('MIT')
arch=('any')
depends=('python-cfgv' 'python-identify' 'python-nodeenv' 'python-yaml' 'python-toml'
         'python-virtualenv')
makedepends=('python-setuptools')
checkdepends=('python-pytest' 'python-pytest-env' 'python-re-assert' 'dotnet-sdk' 'git'
              'go' 'nodejs' 'npm' 'rubygems' 'rust' 'r' 'dart' 'luarocks')
source=("https://github.com/pre-commit/pre-commit/archive/v$pkgver/$pkgname-$pkgver.tar.gz")
sha512sums=('b1da558a0e5d8f2f655427089f1d0b11b01ad7513ece7a0b3b67c33529cf3584edba558c78704e6da6ca18876b1d6c0fa8698e01fd7c2439b8d4dc0a93961e52')

build() {
  cd pre-commit-$pkgver
  python setup.py build
}

check() {
  cd pre-commit-$pkgver
  git init
  git config user.email "pony@arch"
  git config user.name "Lucky Pony"
  git config --global protocol.file.allow always
  export GIT_AUTHOR_NAME="Lucky Pony"
  export GIT_COMMITTER_NAME="Lucky Pony"
  export GIT_AUTHOR_EMAIL="pony@arch"
  export GIT_COMMITTER_EMAIL="pony@arch"
  export VIRTUALENV_NO_DOWNLOAD=1
  export PRE_COMMIT_NO_CONCURRENCY=1

  # Empty venv so that `importlib` picks up the local "pre-commit" package
  python -m venv --system-site-packages venv
  source "$PWD/venv/bin/activate"
  python setup.py develop

  # Deselect conda because we don't have it!
  # test_install_ruby_with_version,test_run_a_ruby_hook: https://github.com/pre-commit/pre-commit/issues/1368
  python -m pytest --deselect tests/languages/ruby_test.py::test_install_ruby_with_version \
                   --deselect tests/repository_test.py::test_additional_golang_dependencies_installed \
                   --deselect tests/repository_test.py::test_conda_hook \
                   --deselect tests/repository_test.py::test_conda_with_additional_dependencies_hook \
                   --deselect tests/repository_test.py::test_dotnet_hook \
                   --deselect tests/repository_test.py::test_golang_hook \
                   --deselect tests/repository_test.py::test_golang_hook_still_works_when_gobin_is_set \
                   --deselect tests/repository_test.py::test_local_conda_additional_dependencies \
                   --deselect tests/repository_test.py::test_local_golang_additional_dependencies \
                   --deselect tests/repository_test.py::test_local_python_repo_python2 \
                   --deselect tests/repository_test.py::test_run_a_ruby_hook \
                   --deselect tests/repository_test.py::test_run_ruby_hook_with_disable_shared_gems \
                   --deselect tests/repository_test.py::test_run_versioned_ruby_hook \
                   --deselect tests/repository_test.py::test_switch_language_versions_doesnt_clobber
  deactivate
}

package() {
  cd pre-commit-$pkgver
  python setup.py install --root="$pkgdir" --optimize=1

  install -Dm644 LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname/
}
